package com.pmsystem.util;

import java.nio.charset.Charset;

import org.springframework.util.DigestUtils;

/**
 * 
* <p>Title: MD5</p>  
* <p>Description:MD5加密验证工具 </p>  
* @author 树昌  
* @date 2019年1月25日
 */
public class MD5 {

	
	/**
	 * 
	 * <p>Title: MD5Eencryption</p>  
	 * <p>Description:MD5加密 </p>  
	 * @author 树昌
	 * @param password	需要加密的明文
	 * @param key		密匙
	 * @return			加密后的密文
	 */
	public static String MD5Eencryption(String password,String key) {
		
		if(password!=null&&key!=null) {
			String encodePwd =DigestUtils.md5DigestAsHex((password+key).getBytes(Charset.forName("UTF-8")));
			return encodePwd;
		}
		return null;
	}
	
	
	/**
	 * <p>Title: MD5check</p>  
	 * <p>Description: </p>  
	 * @author 树昌
	 * @param password	需要验证的明文
	 * @param key		密匙
	 * @param encodePwd	已加密的密文
	 * @return			验证结果
	 */
	public static boolean MD5check(String password,String key,String encodePwd) {	
		String encode =DigestUtils.md5DigestAsHex((password+key).getBytes(Charset.forName("UTF-8")));
		if(encode.equals(encodePwd)) {
			return true;
		}else {
			return false;
		}
	}
	
	
	//测试
	public static void main(String[] args) {
	
		String password="123456";
		String encodePwd = MD5Eencryption(password, "pmsystem");
		System.out.println(encodePwd);
		
		//正确例子
		boolean flag = MD5check(password, "pmsystem", encodePwd);
		System.out.println(flag);
		
		flag = MD5check(password, "FOSU", encodePwd);
		System.out.println(flag);
		
		flag = MD5check(password, "PMSYSTEM", encodePwd);
		System.out.println(flag);
		
		flag = MD5check("111111", "pmsystem", encodePwd);
		System.out.println(flag);
		
	}
}
